[レポート]より厳密なS3データのアクセス制御を行うデータ境界の課題ワークショップ #AWSreInvent #SEC307
こんにちは、臼田です。
みなさん、データのアクセス制御してますか?(挨拶
今回はAWS re:Invent 2024で行われた「SEC307 | Data perimeter challenge」のセッションレポートです。
セッション概要
SEC307-R1 | Data perimeter challenge [REPEAT]
Build actual data perimeter policies in real time based on provided requirements. Test that your policies work with an assessment tool that evaluates if you’ve effectively completed the data perimeter requirement. Leave this builders’ session understanding the tools that are available for you to ensure that only trusted identities are accessing trusted resources from expected networks. You must bring your laptop to participate.
SEC307-R1 | データ境界チャレンジ [繰り返し]
提供された要件に基づいて、実際のデータ境界ポリシーをリアルタイムで構築します。データ境界要件を効果的に完了したかどうかを評価する評価ツールを使用して、ポリシーが機能することをテストします。このビルダー セッションを終了すると、信頼できる ID のみが想定されるネットワークから信頼できるリソースにアクセスしていることを保証するために使用できるツールについて理解できます。参加するには、ラップトップを持参する必要があります。
レポート
このワークショップでは、S3のデータに関するアクセス制御を行う一環で、Data perimeter(データ境界)を構築して予防的統制を行っていきます。
利用する構成要素は主に以下があります。
- Amazon S3
- VPC Endpoint
- IAM
- AWS Organizations
- Service Control Policies
- Resource Control Policies
このワークショップでは4つのシナリオに合わせて、AWSの様々なアクセス制御の仕組みを活用してデータ境界を構築します。この境界により、想定されるネットワーク内の信頼できる ID のみがデータにアクセスでき、データが組織外の信頼できないリソースに転送されないようにすることができます。
具体的に活用するのは下記3つのポリシーです。
- VPC Endpoint Policies
- Service Control Policies
- Resource Control Policies
Resource Control Policies(RCPs)は直近リリースされた仕組みで、既存で存在していたSCPsと似たようなもので、AWS Organizations内に適用するポリシーの1つです。違いとしては名前の通り、SCPsはアイデンティティベースのポリシーであるところがRCPsはリソースベースのポリシーとして機能するところです。詳細は下記の記事を参照してください。
各シナリオではこれらのポリシーとAWS グローバル条件コンテキストキーを活用してデータ境界を構築していきます。シナリオは下記4つです。
- シナリオ 1: 誤った設定による意図しないデータ漏洩
- シナリオ 2: 個人認証情報の使用による意図しないデータ漏洩
- シナリオ 3: 企業の認証情報の使用による意図しないデータ漏洩
- シナリオ 4: 盗まれた資格情報による意図しないデータアクセス
ワークショップでは事前に各シナリオのポリシーと、ポリシーが正しいかチェックするスクリプトが作成されている開発用IDE環境が用意されています。実際のAWS環境を確認したり設定変更したりはしませんが、IDE上でポリシーを作成してそれが正しいかを確認しながら進めていきます。
各種ポリシーの書き方やどんなCondition(条件キー)を利用するのか、学習しながら学べます。SCPsやRCPsの内容が多いので、直接的なセキュリティのための設定というよりは、ガバナンスとしての設定をしていくイメージです。
では各シナリオ毎簡単にどんな内容か解説していきます。
シナリオ 1: 誤った設定による意図しないデータ漏洩
最初のシナリオはS3バケットへのアクセスにデータ境界を設定するものです。AWS Organizationsの組織内部からのアクセスだけ許可するようなポリシーとして定義していきます。
このシナリオにはCloudTrailは例外として許可するための拡張の課題も用意されています。
シナリオ 2: 個人認証情報の使用による意図しないデータ漏洩
こちらは内部のVPCからS3へのアクセスの際に、外部のS3にVPC内のデータを持ち出すために個人のAWS環境のクレデンシャルを持ち込んだ場合でも、通信を止めるためのデータ境界を定義します。
このシナリオには、AWS CloudFormationを利用して代理で操作を行う場合を例外的に許可する課題も用意されています。
シナリオ 3: 企業の認証情報の使用による意図しないデータ漏洩
個人の持ち込み以外でも、そもそも内部不正を防止したいという要望もあります。会社のクレデンシャルであっても、許可の内外部のS3への漏洩を防止するデータ境界を定義します。
このシナリオには、信頼できるサードパーティアカウントのS3は例外的に許可する課題も用意されています。
シナリオ 4: 盗まれた資格情報による意図しないデータアクセス
万が一社内のクレデンシャルが漏洩したとしても、組織のネットワークの外部からのアクセスを防止するデータ境界を定義します。
他のシナリオと同様にAWSサービスからのリクエストは許可するなどたくさんの条件キーを組み合わせます。
まとめ
S3に関連するデータの扱いを中心にデータ境界を設定していくワークショップでした。
慣れていないと普段使わないたくさんの条件キーを調べながら対応していくので、厳密なアクセス制御を理解するのに適したハンズオンです。
是非機会があればチャレンジしてみてください。